package compiler;
import java.util.*;

public class Parser {
	void addTerm(Class<? extends Token> cl) {
		
	}
	void addNonterm(Class<? extends Syntax> cl) {
		
	}

	/*
	 * right <- Elemento*
	 * Elemento <- String | 
	 */
	Token atual;
	
	void parseTerms(Vector<String> dest)  {
		String symbol;
		String varName;
		boolean isVector;
		while (atual!=null) {
			if (atual.lexeme.equals("(")) {
				atual = atual.next;
				Vector<String> subExpr = new Vector<String>();
				while (atual.lexeme.equals(")")) {
					parseTerms(subExpr);
					assert(atual!=null);
				}
				atual = atual.next;
			} else {
				symbol = atual.lexeme;
				atual = atual.next;
			}
			varName = null;
			
			if (atual!=null && atual.lexeme.equals("+=")){
				assert (atual.next.next!=null);
				varName = atual.lexeme;
				symbol = atual.next.lexeme;
				isVector = true;
				atual = atual.next.next;
			} else if (atual!=null && atual.lexeme.equals("=")){
				assert (atual.next!=null);
				varName = atual.lexeme;
				symbol = atual.next.lexeme;
				isVector = false;
				atual = atual.next.next;
			}
			
		}
	}
	
	void addRule(String left,String right, Class<?> typeClass) {
		
	}
}
